João Távora [Wed, 27 Sep 2017 11:42:20 +0000 (12:42 +0100)]
Tweak Flymake commands flymake-goto-[next/prev]-error
Add filters, useful for backends like the upcoming
flymake-elisp-checkdoc backend, for example, which litters everything
with low-priority notes.
Also re-implement wraparound for flymake-goto-next-error. Manual
mentions this, so it's probably a good idea to keep it. Added a new
customization variable flymake-wrap-around to control it.
* lisp/progmodes/flymake.el (flymake-goto-prev-error)
(flymake-goto-next-error): Accept FILTER argument.
(flymake-wrap-around): New variable.
(flymake-goto-next-error): Wrap around according to flymake-wrap-around.
* test/lisp/progmodes/flymake-tests.el
(different-diagnostic-types, dummy-backends): Pass FILTER to
flymake-goto-prev-error.
(different-diagnostic-types)
(dummy-backends): Use flymake-wrap-around.
João Távora [Tue, 19 Sep 2017 13:56:59 +0000 (14:56 +0100)]
Flymake's flymake-proc.el backend slightly easier to debug
Misc cleanup in flymake-proc.el
Improve description of what this file contains.
Better name for the backend function. Fix the case where it is run
interactively.
Keep the output buffer alive iff the external process panics.
* lisp/progmodes/flymake-proc.el
(flymake-proc-legacy-flymake): Rename from
flymake-proc-start-syntax-check. Allow running interactively.
(flymake-start-syntax-check): Obsolete alias for
flymake-proc-legacy-flymake.
(flymake-proc-start-syntax-check): Delete.
(flymake-diagnostic-functions): Include flymake-proc-legacy-flymake
(flymake-proc--process-sentinel): Keep output buffer alive.
Clarify with comments.
(flymake-proc--diagnostics-for-pattern)
(flymake-proc--process-sentinel)
(flymake-proc--safe-delete-directory)
(flymake-proc--start-syntax-check-process): Use condition-case-unless-debug.
João Távora [Tue, 26 Sep 2017 00:35:43 +0000 (01:35 +0100)]
Simplify Flymake logging and erroring
Use display-warning and a dedicated *Flymake log* buffer.
To ease readability, flymake log messages are now prefixed with a
common prefix and the buffer that originated them.
Some situations of over-zealous logging are fixed.
Use byte-compiler info, if available, to determine whence the
flymake-related log message is coming.
* lisp/progmodes/flymake-proc.el
(flymake-proc--diagnostics-for-pattern): Improve log message.
(flymake-proc--panic): Always flymake-log an error
(flymake-proc--safe-delete-file)
(flymake-proc--safe-delete-directory):
Downgrade warning
(flymake-proc-start-syntax-check): Simplify slightly.
(flymake-proc--start-syntax-check-process): Simplify.
(flymake-proc--init-find-buildfile-dir)
(flymake-proc--init-create-temp-source-and-master-buffer-copy):
No need to warn twice.
* lisp/progmodes/flymake.el (flymake-log): Convert to macro.
(flymake--log-1): New helper.
(flymake-log-level): Deprecate.
(flymake-error): New helper.
(flymake-ler-make-ler, flymake--handle-report, flymake-mode):
Use flymake-error.
(flymake-on-timer-event)
(flymake--handle-report, flymake--disable-backend)
(flymake--run-backend, flymake-start, flymake-mode-on)
(flymake-mode-off, flymake-after-change-function)
(flymake-after-save-hook, flymake-find-file-hook): Adjust
flymake-log calls.
* test/lisp/progmodes/flymake-tests.el
(flymake-tests--call-with-fixture): Only log errors.
João Távora [Mon, 25 Sep 2017 23:45:46 +0000 (00:45 +0100)]
New Flymake API variable flymake-diagnostic-functions
Lay groundwork for multiple active backends in the same buffer.
Backends are lisp functions called when flymake-mode sees fit. They
are responsible for examining the current buffer and telling
flymake.el, via return value, if they can syntax check it.
Backends should return quickly and inexpensively, but they are also
passed a REPORT-FN argument which they may or may not call
asynchronously after performing more expensive work.
REPORT-FN's calling convention stipulates that a backend calls it with
a list of diagnostics as argument, or, alternatively, with a symbol
denoting an exceptional situation, usually some panic resulting from a
misconfigured backend. In keeping with legacy behaviour,
flymake.el's response to a panic is to disable the issuing backend.
The flymake--diag object representing a diagnostic now also keeps
information about its source backend. Among other uses, this allows
flymake to selectively cleanup overlays based on which backend is
updating its diagnostics.
* lisp/progmodes/flymake-proc.el (flymake-proc--report-fn):
New dynamic variable.
(flymake-proc--process): New variable.
(flymake-can-syntax-check-buffer): Remove.
(flymake-proc--process-sentinel): Simplify. Use
unwind-protect. Affect flymake-proc--processes here.
Bind flymake-proc--report-fn.
(flymake-proc--process-filter): Bind flymake-proc--report-fn.
(flymake-proc--post-syntax-check): Delete
(flymake-proc-start-syntax-check): Take mandatory
report-fn. Rewrite. Bind flymake-proc--report-fn.
(flymake-proc--process-sentinel): Rewrite and simplify.
(flymake-proc--panic): New helper.
(flymake-proc--start-syntax-check-process): Record report-fn
in process. Use flymake-proc--panic.
(flymake-proc-stop-all-syntax-checks): Use mapc. Don't affect
flymake-proc--processes here. Record interruption reason.
(flymake-proc--init-find-buildfile-dir)
(flymake-proc--init-create-temp-source-and-master-buffer-copy):
Use flymake-proc--panic.
(flymake-diagnostic-functions): Add
flymake-proc-start-syntax-check.
(flymake-proc-compile): Call
flymake-proc-stop-all-syntax-checks with a reason.
* lisp/progmodes/flymake.el (flymake-backends): Delete.
(flymake-check-was-interrupted): Delete.
(flymake--diag): Add backend slot.
(flymake-delete-own-overlays): Take optional filter arg.
(flymake-diagnostic-functions): New user-visible variable.
(flymake--running-backends, flymake--disabled-backends): New
buffer-local variables.
(flymake-is-running): Now a function, not a variable.
(flymake-mode-line, flymake-mode-line-e-w)
(flymake-mode-line-status): Delete.
(flymake-lighter): flymake's minor-mode "lighter".
(flymake-report): Delete.
(flymake--backend): Delete.
(flymake--can-syntax-check-buffer): Delete.
(flymake--handle-report, flymake--disable-backend)
(flymake--run-backend, flymake--run-backend): New helpers.
(flymake-make-report-fn): Make a lambda.
(flymake--start-syntax-check): Iterate
flymake-diagnostic-functions.
(flymake-mode): Use flymake-lighter. Simplify. Initialize
flymake--running-backends and flymake--disabled-backends.
(flymake-find-file-hook): Simplify.
* test/lisp/progmodes/flymake-tests.el
(flymake-tests--call-with-fixture): Use flymake-is-running the
function. Check if flymake-mode already active before activating it.
Add a thorough test for flymake multiple backends
* lisp/progmodes/flymake.el (flymake--start-syntax-check):
Don't use condition-case-unless-debug, use condition-case
* test/lisp/progmodes/flymake-tests.el
(flymake-tests--assert-set): New helper macro.
(dummy-backends): New test.
João Távora [Sat, 23 Sep 2017 17:15:40 +0000 (18:15 +0100)]
More Flymake cleanup before advancing to backend redesign
Diagnostics are reported for buffers, not necessarily files. It’s the
backend’s responsibility to compute the buffer where the diagnostic is
applicable. For now, this has to match the buffer where flymake-mode
is active and which is at the origin of the backend call.
flymake.el knows nothing about line/column diagnostics (except for
backward-compatible flymake-ler-make-ler, which must yet be tested).
It’s also the backend’s reponsibility to compute a BEG and END
positions for the diagnostic in the relevant buffer.
* lisp/progmodes/flymake-proc.el
(flymake-proc--diagnostics-for-pattern): Convert LINE/COL to
region here. Check file buffer here.
(flymake-proc--process-sentinel): Don’t kill output buffer if
high enough log level.
* lisp/progmodes/flymake.el (flymake-diag-region): Make this a utility
function. (flymake--highlight-line): Diagnostic has region now.
(flymake-popup-current-error-menu): Don’t add file and line numbers to
already this silly menu. (flymake--fix-line-numbers): Remove.
(flymake-report): No need to fix diagnostics here.
João Távora [Fri, 22 Sep 2017 00:31:23 +0000 (01:31 +0100)]
Protect Flymake's eager checks against commands like fill-paragraph
If flymake-start-syntax-check-on-newline is t, check should start as
soon as a newline is seen by after-change-functions. But don't rush
it: since the buffer state might not be final, we might end up with
invalid diagnostic regions after some commands silently insert and
delete newlines (looking at you, fill-paragraph).
* lisp/progmodes/flymake.el (flymake-after-change-function): Pass
`deferred' to flymake--start-syntax-check.
(flymake--start-syntax-check): Take optional `deferred' arg.
João Távora [Thu, 21 Sep 2017 13:44:13 +0000 (14:44 +0100)]
Flymake highlights GCC info/notes as detected by flymake-proc.el
* lisp/progmodes/flymake-proc.el
(flymake-proc--diagnostics-for-pattern): Rewrite (using cl-loop) to
honour more sophisticated flymake-proc-diagnostic-type-pred.
(flymake-warning-re): Is now an obsolete alias for
flymake-proc-diagnostic-type-pred.
(flymake-proc-diagnostic-type-pred): Rename and augment from
flymake-proc-warning-predicate. (flymake-proc-warning-predicate):
Delete.
* lisp/progmodes/flymake.el (flymake-note): New face.
(flymake-diagnostic-types-alist): Simplify.
(flymake-note): New overlay category.
(flymake--lookup-type-property): Only lookup single keys, not lists.
(flymake--diag-errorp): Rewrite.
(flymake--highlight-line): Use flymake--lookup-type-property.
* test/lisp/progmodes/flymake-tests.el
(different-diagnostic-types): Rename from errors-and-warnings.
Check notes.
(flymake-tests--call-with-fixture): Use
flymake-proc-diagnostic-type-pred.
João Távora [Thu, 21 Sep 2017 13:45:21 +0000 (14:45 +0100)]
Flymake checks file names before considering diagnostics
The error patterns for gcc picked up errors for the Makefile itself,
for example. These shouldn't count as actual errors.
* lisp/progmodes/flymake.el (flymake-report): Check
matching file names.
João Távora [Thu, 21 Sep 2017 13:20:22 +0000 (14:20 +0100)]
Echo Flymake error messages when navigating errors interactively
Perhaps binding M-n and M-p to flymake-goto-next-error and
flymake-goto-prev-error also wouldn't be a bad idea.
* lisp/progmodes/flymake.el (flymake-goto-next-error): Use
target overlay's help-echo.
João Távora [Thu, 21 Sep 2017 13:57:20 +0000 (14:57 +0100)]
Add a new Flymake test for multiple errors and warnings
* test/lisp/progmodes/flymake-tests.el
(flymake-tests--call-with-fixture): Save excursion.
(errors-and-warnings): New test.
* test/lisp/progmodes/flymake-resources/errors-and-warnings.c:
New test fixture.
João Távora [Wed, 20 Sep 2017 18:09:10 +0000 (19:09 +0100)]
Flymake warning face easier to distinguish
A orange wavy underline is very hard to tell from a red wavy
underline.
* lisp/progmodes/flymake.el (flymake-warning): Change color to
"deep sky blue"
João Távora [Tue, 19 Sep 2017 13:25:34 +0000 (14:25 +0100)]
Flymake's flymake-proc.el parses column numbers from gcc/javac errors
Column numbers are not a great way of marking diagnostic regions, but
that's probably all that can be expected from the flymake-proc.el
backend. For now, try (end-of-thing 'sexp) to discover the
diagnostic's end position.
* lisp/progmodes/flymake-proc.el ()
(flymake-proc-err-line-patterns): Also parse column numbers,
if available, for gcc/javac warnings.
João Távora [Thu, 7 Sep 2017 14:13:39 +0000 (15:13 +0100)]
New Flymake variable flymake-diagnostic-types-alist and much cleanup
A new user-visible variable is introduced where different diagnostic
types can be categorized. Flymake backends can also contribute to
this variable. Anything that doesn’t match an existing error type
is considered.
The variable’s alists are used to propertize the overlays pertaining
to each error type. The user can override the built-in properties by
either by modifying the alist, or by modifying the properties of a
special "category" symbol, named by the `flymake-category' entry in
the alist.
The `flymake-category' entry is especially useful for, say, the author
of foo-flymake-backend, who issues diagnostics of type :foo-note, that
should behave like notes, except with no fringe bitmap:
(add-to-list 'flymake-diagnostic-types-alist
'(:foo-note
. ((flymake-category . flymake-note)
(bitmap . nil))))
For essential properties like `severity', `priority', etc, a default
value is produced. Some properties like `evaporate' cannot be
overriden.
* lisp/progmodes/flymake.el (flymake--diag): Rename from
flymake-ler.
(flymake-ler-make): Obsolete alias for flymake-diagnostic-make
(flymake-ler-errorp): Rewrite using flymake--severity.
(flymake--place-overlay): Delete.
(flymake--overlays): Now a cl-defun with &key args. Document.
Use `overlays-at' if BEG is non-nil and END is nil.
(flymake--lookup-type-property): New helper.
(flymake--highlight-line): Rewrite.
(flymake-diagnostic-types-alist): New API variable.
(flymake--diag-region)
(flymake--severity, flymake--face)
(flymake--fringe-overlay-spec): New helper.
(flymake-popup-current-error-menu): Use new flymake-overlays.
(flymake-popup-current-error-menu, flymake-report): Use
flymake--diag-errorp.
(flymake--fix-line-numbers): Use flymake--diag-line.
(flymake-goto-next-error): Pass :key to flymake-overlays
* lisp/progmodes/flymake-proc.el
(flymake-proc--diagnostics-for-pattern): Use flymake-diagnostic-make.
João Távora [Thu, 7 Sep 2017 13:19:33 +0000 (14:19 +0100)]
Refactor Flymake tests in preparation for more tests
Introduce a slightly more generic fixture macro.
Also make flymake-tests.el friendlier to interactive runs, by not
killing buffers visited by the user.
* test/lisp/progmodes/flymake-tests.el
(flymake-tests--call-with-fixture): New helper from
flymake-tests--current-face. Don't kill file buffers already
being visited before the test starts.
(flymake-tests--with-flymake): New macro.
(flymake-tests--current-face): Delete.
(warning-predicate-rx-gcc, warning-predicate-function-gcc)
(warning-predicate-rx-perl, warning-predicate-function-perl):
Use flymake-test--with-flymake.
João Távora [Sun, 20 Aug 2017 11:19:45 +0000 (12:19 +0100)]
Allow running Flymake tests from interactive sessions
* test/lisp/progmodes/flymake-tests.el (flymake-tests-data-directory):
Expand to reasonable value if no
EMACS_TEST_DIRECTORY. (flymake-tests--current-face): Work around
"weirdness" of bug 17647 with read-event.
João Távora [Wed, 6 Sep 2017 15:03:24 +0000 (16:03 +0100)]
Flymake diagnostics now apply to arbitrary buffer regions
Make Flymake UI some 150 lines lighter
Strip away much of the original implementation's complexity in
manipulating objects representing diagnostics as well as creating and
navigating overlays.
Lay some groundwork for a more flexible approach that allows for
different classes of diagnostics, not necessarily line-based.
Importantly, one overlay per diagnostic is created, whereas the
original implementation had one per line, and on it it concatenated
the results of errors and warnings.
This means that currently, an error and warning on the same line are
problematic and the warning might be overlooked but this will soon be
fixed by setting appropriate priorities.
Since diagnostics can highlight arbitrary regions, not just lines, the
faces were renamed.
Tests pass and backward compatibility with interactive functions is
maintained, but probably any third-party extension or customization
relying on more than a trivial set of flymake.el internals has stopped
working.
* lisp/progmodes/flymake-proc.el
(flymake-proc--diagnostics-for-pattern): Use new flymake-ler-make
constructor syntax.
* lisp/progmodes/flymake.el (flymake-ins-after)
(flymake-set-at, flymake-er-make-er, flymake-er-get-line)
(flymake-er-get-line-err-info-list, flymake-ler-set-file)
(flymake-ler-set-full-file, flymake-ler-set-line)
(flymake-get-line-err-count, flymake-get-err-count)
(flymake-highlight-err-lines, flymake-overlay-p)
(flymake-make-overlay, flymake-region-has-flymake-overlays)
(flymake-find-err-info)
(flymake-line-err-info-is-less-or-equal)
(flymake-add-line-err-info, flymake-add-err-info)
(flymake-get-first-err-line-no)
(flymake-get-last-err-line-no, flymake-get-next-err-line-no)
(flymake-get-prev-err-line-no, flymake-skip-whitespace)
(flymake-goto-line, flymake-goto-next-error)
(flymake-goto-prev-error, flymake-patch-err-text): Delete
functions no longer used.
(flymake-goto-next-error, flymake-goto-prev-error): Rewrite.
(flymake-report): Rewrite.
(flymake-popup-current-error-menu): Rewrite.
(flymake--highlight-line): Rename from
flymake-highlight-line. Call `flymake--place-overlay.
(flymake--place-overlay): New function.
(flymake-ler-errorp): New predicate.
(flymake-ler): Simplify.
(flymake-error): Rename from
flymake-errline.
(flymake-warning): Rename from flymake-warnline.
(flymake-warnline, flymake-errline): Obsoletion aliases.
* test/lisp/progmodes/flymake-tests.el (warning-predicate-rx-gcc)
(warning-predicate-function-gcc, warning-predicate-rx-perl)
(warning-predicate-function-perl): Use face `flymake-warning'.
João Távora [Wed, 23 Aug 2017 22:18:05 +0000 (23:18 +0100)]
Move symbols in flymake-proc.el to separate namespace
Every symbol in this flymake now starts with the prefix flymake-proc-.
Make obsolete aliases for (almost?) every symbol.
Furthermore, many flymake-proc.el symbols are prefixed with
"flymake-proc--", that is they were considered internal.
Some customization variables, interactive functions, and other symbols
considered useful to user customizations or third-party libraries are
considered "public" or "external" and so use a "flymake-proc-" prefix.
* lisp/progmodes/flymake-proc.el: Every symbol renamed.
* test/lisp/progmodes/flymake-tests.el
(flymake-tests--current-face): Use
flymake-proc-warning-predicate, not flymake-warning-predicate.
* lisp/progmodes/flymake-proc.el
(flymake-proc--get-project-include-dirs-function)
(flymake-proc--get-project-include-dirs-imp)
(flymake-proc--get-include-dirs-dot) (flymake-proc--get-tex-args)
(flymake-proc--find-make-buildfile)
(flymake-proc--get-syntax-check-program-args)
(flymake-proc--init-create-temp-source-and-master-buffer-copy)
(flymake-proc--init-find-buildfile-dir)
(flymake-proc--get-full-nonpatched-file-name)
(flymake-proc--get-full-patched-file-name) (flymake-proc--base-dir,
flymake-proc--temp-master-file-name) (flymake-proc--master-file-name)
(flymake-proc--temp-source-file-name)
(flymake-proc--delete-temp-directory) (flymake-proc--kill-process)
(flymake-proc--start-syntax-check-process)
(flymake-proc--compilation-is-running)
(flymake-proc--safe-delete-directory) (flymake-proc--safe-delete-file)
(flymake-proc--get-program-dir) (flymake-proc--restore-formatting)
(flymake-proc--clear-project-include-dirs-cache)
(flymake-proc--project-include-dirs-cache)
(flymake-proc--get-system-include-dirs)
(flymake-proc--get-project-include-dirs)
(flymake-proc--add-project-include-dirs-to-cache)
(flymake-proc--get-project-include-dirs-from-cache)
(flymake-proc--post-syntax-check) (flymake-proc--process-sentinel)
(flymake-proc--process-filter) (flymake-proc--create-master-file)
(flymake-proc--find-buffer-for-file)
(flymake-proc--copy-buffer-to-temp-buffer)
(flymake-proc--read-file-to-temp-buffer)
(flymake-proc--save-buffer-in-file) (flymake-proc--replace-region,
flymake-proc--check-include)
(flymake-proc--check-patch-master-file-buffer)
(flymake-proc--master-file-compare)
(flymake-proc--find-possible-master-files)
(flymake-proc--included-file-name, flymake-proc--same-files)
(flymake-proc--fix-file-name, flymake-proc--find-buildfile)
(flymake-proc--clear-buildfile-cache)
(flymake-proc--add-buildfile-to-cache)
(flymake-proc--get-buildfile-from-cache)
(flymake-proc--find-buildfile-cache)
(flymake-proc--get-real-file-name-function)
(flymake-proc--get-cleanup-function) (flymake-proc--get-init-function)
(flymake-proc--get-file-name-mode-and-masks)
(flymake-proc--processes): Rename to internal symbol from
flymake-proc- version.
João Távora [Wed, 23 Aug 2017 01:23:41 +0000 (02:23 +0100)]
Completely rewrite Flymake's subprocess output processing
Instead of parsing and matching regexps line-by-line, insert
subprocess output in a separate buffer and parse using
`search-forward-regexp'. This eventually enables multi-line error
patterns and simplifies code all around. Store per-check information
in the subprocess using `process-get' and `process-put'. Treat error
messages, warnings, etc. more generically as "diagnostics". Create
these objects as soon as possible, reusing existing `flymake-ler'
structure. Fix some whitespace.
* lisp/progmodes/flymake.el (cl-lib): Require also when
loading.
(flymake--fix-line-numbers): Rename from
flymake-fix-line-numbers. Simplify.
(flymake-report): Call flymake--fix-line-numbers. Rearrange
plain diagnostics list into alist format expected by
flymake-highlight-err-lines.
* lisp/progmodes/flymake-proc.el (flymake-process-filter): Insert
process output and parse in dedicated output buffer.
(flymake-proc--diagnostics-for-pattern): New helper function.
(flymake-process-sentinel): Call flymake-post-syntax-check with
collected diagnostics. Kill output buffer.
(flymake-post-syntax-check): Receive diagnostics as third argument.
(flymake-parse-output-and-residual, flymake-new-err-info)
(flymake-parse-residual, flymake-parse-err-lines)
(flymake-split-output, flymake-proc-parse-line)
(flymake-output-residual): Delete.
(flymake-start-syntax-check-process): Use make-process. Setup
dedicated an output buffer
João Távora [Sun, 20 Aug 2017 23:17:05 +0000 (00:17 +0100)]
Flymake provides flymake-report re-entry point for backends
* lisp/progmodes/flymake-proc.el (flymake-post-syntax-check):
Simplify. Call flymake-report.
* lisp/progmodes/flymake.el (flymake-report): New function.
João Távora [Thu, 17 Aug 2017 14:38:12 +0000 (15:38 +0100)]
Split Flymake into flymake.el into flymake-proc.el (again!)
After deciding that this work would continue on master only, which
caused two commits named
Revert "Split flymake.el into flymake-proc.el and flymake-ui.el"
and
Revert "Add flymake-backends defcustom"
to be added to the emacs-26 branch, further discussion reversed that
decision.
See:
https://lists.gnu.org/archive/html/emacs-devel/2017-09/msg01020.html
https://lists.gnu.org/archive/html/emacs-devel/2017-09/msg01030.html
This means that those two commits MUST be merged to master AFTER ALL.
flymke-proc.el contains the main syntax-checking backend, while
flymake.el keeps mostly the UI part.
* lisp/progmodes/flymake-proc.el: New file. Require flymake.
* lisp/progmodes/flymake.el: Require flymake-proc.el at the end.
Nicolas Petton [Tue, 3 Oct 2017 11:12:56 +0000 (13:12 +0200)]
; ChangeLog fixes
Nicolas Petton [Tue, 3 Oct 2017 11:11:07 +0000 (13:11 +0200)]
Update authors.el
* admin/authors.el (authors-ignored-files, authors-valid-file-names)
(authors-renamed-files-alist): Additions.
Noam Postavsky [Tue, 3 Oct 2017 02:54:36 +0000 (22:54 -0400)]
Give more helpful messages for python completion setup failures
* lisp/progmodes/python.el (python-shell-completion-native-setup): In
case the completion setup failed with some exception, print out the
exception type and message. If libedit is detected, raise an
exception, since this is known to fail.
Glenn Morris [Mon, 2 Oct 2017 18:47:55 +0000 (14:47 -0400)]
; Auto-commit of loaddefs files.
Eli Zaretskii [Mon, 2 Oct 2017 18:35:51 +0000 (21:35 +0300)]
Fix the --without-x build
* src/frame.c (Ficonify_frame) [HAVE_WINDOW_SYSTEM]: Use
frame_parent only in GUI builds to avoid compilation errors in
--without-x builds. (Bug#28611)
Glenn Morris [Mon, 2 Oct 2017 17:19:11 +0000 (13:19 -0400)]
; * lisp/emacs-lisp/cl-print.el (cl-prin1): Whitespace fix.
Paul Eggert [Mon, 2 Oct 2017 16:04:46 +0000 (09:04 -0700)]
Fix customization of zoneinfo-style-world-list
A customizable variable's initial value cannot depend on that of
another customizable variable, since the variables are initialized
in other than textual order. Problem reported by N. Jackson
(Bug#24291).
* lisp/time.el (display-time-world-list): Default to t,
a special value that expands to zoneinfo-style-word-list
if that works, and to legacy-style-word-list otherwise.
(time--display-world-list): New function.
(display-time-world, display-time-world-timer): Use it.
Alan Mackenzie [Mon, 2 Oct 2017 14:42:13 +0000 (14:42 +0000)]
Fix a CC Mode brace stack cache bug.
* lisp/progmodes/cc-engine.el (c-update-brace-stack): Call
c-beginning-of-current-token after a failing search operation, to ensure we
don't cache a point inside a token.
Paul Eggert [Mon, 2 Oct 2017 06:15:36 +0000 (23:15 -0700)]
* etc/PROBLEMS: Document Bug#26638.
Paul Eggert [Mon, 2 Oct 2017 02:53:56 +0000 (19:53 -0700)]
Prefer HTTPS to HTTP for gnu.org
This fixes some URLs I omitted from my previous pass,
notably those in lists.gnu.org. Although lists.gnu.org
does not yet support TLS 1.1, TLS 1.0 is better than nothing.
* lisp/erc/erc.el (erc-official-location):
* lisp/mail/emacsbug.el (report-emacs-bug):
Use https:, not http:.
Paul Eggert [Mon, 2 Oct 2017 01:30:44 +0000 (18:30 -0700)]
Merge from Gnulib
This is mostly to change http: to https: in licenses.
* COPYING, build-aux/config.guess, build-aux/config.sub:
* doc/emacs/doclicense.texi, doc/emacs/gpl.texi:
* doc/lispintro/doclicense.texi, doc/lispref/doclicense.texi:
* doc/lispref/gpl.texi, doc/misc/doclicense.texi:
* doc/misc/gpl.texi, etc/COPYING, leim/COPYING:
* lib-src/COPYING, lib/COPYING, lisp/COPYING, lwlib/COPYING:
* msdos/COPYING, nt/COPYING, src/COPYING:
Copy from Gnulib.
Simen Heggestøyl [Sun, 1 Oct 2017 18:24:55 +0000 (20:24 +0200)]
Keep eww buffer current when looking up CSS on MDN
* lisp/textmodes/css-mode.el (css-lookup-symbol): Keep the eww buffer
current when looking up CSS documentation on MDN. This fixes a bug
where the eww buffer's content sometimes get mangled when switching
buffers mid-render.
Charles A. Roelli [Sat, 30 Sep 2017 18:42:03 +0000 (20:42 +0200)]
Workaround for faulty localtime() under macOS 10.6
* lisp/org/org-clock.el (org-clock--oldest-date): Only execute
'decode-time' on times later than year -2**31 under macOS 10.6.
See Bug#27706.
Alan Mackenzie [Sun, 1 Oct 2017 16:08:20 +0000 (16:08 +0000)]
Doc amendment for syntax-ppss.
* doc/elisp/syntax.texi (Position Parse): Note, twice, that syntax-ppss is
equivalent to parse-partial-sexp from the beginning of THE VISIBLE PART OF the
buffer. Final part of the fix for bug #22983.
Charles A. Roelli [Sun, 1 Oct 2017 15:41:49 +0000 (17:41 +0200)]
Remove incorrect NEWS entry about 'find-library'
* etc/NEWS (Changes in Emacs 26.1): Remove an entry about
'find-library' taking a prefix argument to pop to a different
window. This behavior was added in "Allow a prefix argument to
find-library to pop to a different window" (commit
e1f2d14a), and
then removed in "New commands: find-library-other-window,
find-library-other-frame" (commit
021430f4).
Alan Mackenzie [Sun, 1 Oct 2017 10:01:33 +0000 (10:01 +0000)]
Remove inadvertent changes to syntax.texi in last commit.
* doc/lispref/syntax.texi (Position Parse): revert changes.
Alan Mackenzie [Sat, 30 Sep 2017 11:08:16 +0000 (11:08 +0000)]
Amend documentation for text-quoting-style becoming a user option.
* doc/lispref/control.texi (Signaling Errors):
* doc/lispref/display.texi (Displaying Messages):
* doc/lispref/strings.texi (Formatting Strings):
Edit for brevity, farming out the details to the new
Text Quoting Style node.
* doc/lispref/help.texi (Text Quoting Style): New section.
Move detailed discussion of text-quoting-style here.
Add discussion about how to output grave accent and apostrophe in
documentation and messages. Adjust xrefs to point to this section
when appropriate.
* etc/NEWS: text-quoting-style semantics have not changed.
Alan Mackenzie [Fri, 22 Sep 2017 21:52:03 +0000 (21:52 +0000)]
Make the value nil in text-quoting-style mean what it does in Emacs 25.
This is a partial reversion of yesterday's commit by the same author, which
changed the meaning of nil and introduced the new value t.
* src/doc.c (text_quoting_style, text-quoting-style)
(internal--text-quoting-flag): Revert yesterday's changes.
* lisp/cus-start.el: (top level): Amend the entry for text-quoting-style.
* etc/NEWS: Amend the entry for text-quoting-style.
* doc/lispref/control.texi (Signalling Errors)
* doc/lispref/display.texi (Displaying Messages)
* doc/lispref/strings.texi (Formatting Strings): Bind text-quoting-style to
grave rather than nil to inhibit translation of quotes.
* doc/lispref/help.texi (Keys in Documentation): Revert the description of the
proposed new default, t.
Alan Mackenzie [Thu, 21 Sep 2017 20:31:06 +0000 (20:31 +0000)]
Make text-quoting-style customizable. Introduce t and new meaning for nil.
A value of nil for text-quoting-style now means "no translation". t means
"Use curved quotes if displayable".
* src/doc.c (text-quoting-style (function)): modify for new semantics.
(text-quoting-style (variable)): Amend the doc string, set the default value
to t.
* lisp/cus-start.el: (top level): Create a customize entry for
text-quoting-style in group display.
* etc/NEWS: Amend the entry for text-quoting-style.
* doc/emacs/display.texi (Text Display): Describe the translation of ASCII
quotes to curved quotes, and how to influence or inhibit it.
* doc/lispref/control.texi (Signalling Errors)
* doc/lispref/display.texi (Displaying Messages)
* doc/lispref/strings.texi (Formatting Strings): Describe binding
text-quoting-style to nil to inhibit unwanted quote translation.
* doc/lispref/help.texi (Keys in Documentation): Change text-quoting-style
from a variable to a user option. Describe its changed set of values. State
that it can be customized freely.
Michael Albinus [Sun, 1 Oct 2017 11:31:39 +0000 (13:31 +0200)]
eshell.texi improvements
* doc/misc/eshell.texi (Built-ins): eshell/sudo is a compiled
Lisp function in `em-tramp.el'. Mention also $*, $1, $2, ...
(Aliases): Add $*, $1, $2, ... to the variable index.
Alan Third [Tue, 15 Aug 2017 08:58:33 +0000 (09:58 +0100)]
Fix ns-win.el on GNUstep
* lisp/term/ns-win.el: Appkit version check only works on macOS, so
don't try it when not using Cocoa.
Martin Rudalics [Sun, 1 Oct 2017 08:30:33 +0000 (10:30 +0200)]
Fix reference style in org.texi
* doc/misc/org.texi (A Texinfo example): Fix reference style.
Martin Rudalics [Sun, 1 Oct 2017 08:17:17 +0000 (10:17 +0200)]
Improve handling of iconification of child frames (Bug#28611)
* src/frame.c (Ficonify_frame): Handle `iconify-child-frame' option.
(syms_of_frame): New symbols Qiconify_top_level and Qmake_invisible.
(iconify_child_frame): New option.
* lisp/cus-start.el (iconify-child-frame): Add customization
properties.
* doc/lispref/frames.texi (Child Frames): Describe new option
`iconify-child-frame'. Don't index "top-level frame" twice.
Noam Postavsky [Sat, 30 Sep 2017 01:00:10 +0000 (21:00 -0400)]
Revert "Don't lose arguments to eshell aliases (Bug#27954)"
It broke the established argument handling methods provided by eshell
aliases (Bug#28568).
* doc/misc/eshell.texi (Aliases): Fix example, call out use of
arguments in aliases.
* lisp/eshell/em-alias.el (eshell-maybe-replace-by-alias): Ignore
ARGS.
Noam Postavsky [Mon, 28 Aug 2017 03:09:32 +0000 (23:09 -0400)]
Make "unsafe directory" error message more informative (Bug#865)
* lisp/server.el (server-ensure-safe-dir): Produce a description for
each "unsafe" condition.
Eric Abrahamsen [Sat, 30 Sep 2017 17:57:52 +0000 (10:57 -0700)]
Fix slot typecheck in eieio-persistent
* lisp/emacs-lisp/eieio-base.el (eieio-persistent-slot-type-is-class-p):
An `or' form can specify multiple potential classes (or null) as
valid types for a slot, but previously only the final element of the
`or' was actually checked. Now returns all valid classes in the `or'
form.
(eieio-persistent-validate/fix-slot-value): Check if proposed value
matches any of the valid classes.
* test/lisp/emacs-lisp/eieio-tests/eieio-test-persist.el
(eieio-test-multiple-class-slot): Test this behavior.
Dmitry Gutov [Sat, 30 Sep 2017 14:17:02 +0000 (16:17 +0200)]
Fix semantic-ia-fast-jump
* lisp/cedet/semantic/ia.el (semantic-ia--fast-jump-helper):
Use `pop-to-buffer-same-window' (bug#28645).
Kaushal Modi [Fri, 29 Sep 2017 16:38:56 +0000 (12:38 -0400)]
Bind vc-region-history
* lisp/vc/vc-hooks.el (vc-prefix-map):
Bind `vc-region-history' to 'C-x v h', which was earlier bound to
`vc-insert-headers' (Bug#27644).
* doc/emacs/maintaining.texi (VC Change Log): Mention the new binding.
* doc/emacs/vc1-xtra.texi (Version Headers): Remove the association of
'C-x v h' with `vc-insert-headers'.
(http://lists.gnu.org/archive/html/emacs-devel/2017-09/msg00957.html)
Allen Li [Sat, 30 Sep 2017 13:46:48 +0000 (16:46 +0300)]
Exit macro definition on undefined keys
* lisp/subr.el (undefined): Error out of kmacro definition, if any.
(Bug#28008)
Copyright-paperwork-exempt: yes
Tim Landscheidt [Sat, 30 Sep 2017 13:39:36 +0000 (16:39 +0300)]
Reset bidi-paragraph-direction on article rendering
* lisp/gnus/gnus-art.el (gnus-request-article-this-buffer): Reset
bidi-paragraph-direction on article rendering. (Bug#28454)
Copyright-paperwork-exempt: yes
Eli Zaretskii [Sat, 30 Sep 2017 13:33:30 +0000 (16:33 +0300)]
Fix url-http use of url-current-object
* lisp/url/url-http.el (url-http): Bind url-current-object before
calling url-http-find-free-connection. (Bug#28515)
Andy Moreton [Sat, 30 Sep 2017 13:21:39 +0000 (16:21 +0300)]
Avoid assertions in vc-hg.el on MS-Windows
* lisp/vc/vc-hg.el (vc-hg--pcre-to-elisp-re)
(vc-hg--slurp-hgignore, vc-hg--read-repo-requirements)
(vc-hg-state-fast): Use file-name-absolute-p and directory-name-p
instead of relying on Unix file-name syntax. This avoids
assertion violations on MS-Windows.
Eli Zaretskii [Sat, 30 Sep 2017 13:01:00 +0000 (16:01 +0300)]
Improve documentation of 'copy-sequence'
* src/fns.c (Fcopy_sequence):
* doc/lispref/sequences.texi (Sequence Functions): Mention the
exception when copying an empty sequence. (Bug#28627)
Eli Zaretskii [Sat, 30 Sep 2017 12:29:28 +0000 (15:29 +0300)]
Minor update of ack.texi
* doc/emacs/ack.texi (Acknowledgments): Update Eli Zaretskii's
contributions.
N. Jackson [Sat, 30 Sep 2017 12:28:06 +0000 (15:28 +0300)]
* doc/emacs/emacs.texi (Acknowledgments): Add more contributors.
Copyright-paperwork-exempt: yes
Eli Zaretskii [Sat, 30 Sep 2017 12:08:47 +0000 (15:08 +0300)]
Improve indexing of multi-file/buffer Isearch commands
* doc/emacs/maintaining.texi (Identifier Search): Change wording
of index entries to make them different from those for multi-file
isearch commands. (Bug#28584)
* doc/emacs/search.texi (Other Repeating Search): Index the
multi-* commands. (Bug#28584) Rearrange the indexing to keep
each index entry close to its subject.
Mark Oteiza [Tue, 26 Sep 2017 21:13:36 +0000 (17:13 -0400)]
Add CAM02 JCh and CAM02-UCS J'a'b' conversions
* src/lcms.c (rad2deg, parse_jch_list, parse_jab_list, xyz_to_jch):
(jch_to_xyz, jch_to_jab, jab_to_jch): New functions.
(lcms-jch->xyz, lcms-jch->xyz, lcms-jch->jab, lcms-jab->jch): New Lisp
functions.
(lcms-cam02-ucs): Refactor.
(syms_of_lcms2): Declare new functions.
* test/src/lcms-tests.el (lcms-roundtrip, lcms-ciecam02-gold):
(lcms-jmh->cam02-ucs-silver): New tests.
* etc/NEWS: Mention new functions.
Eli Zaretskii [Sat, 30 Sep 2017 08:27:29 +0000 (11:27 +0300)]
Fix uses of @kindex in the Emacs manual
* doc/emacs/programs.texi (Expressions, Semantic, Hungry Delete):
* doc/emacs/mark.texi (Global Mark Ring)
(Disabled Transient Mark):
* doc/emacs/buffers.texi (Select Buffer):
* doc/emacs/mule.texi (File Name Coding): Fix @kindex entries
which used @key. Reported by Marcin Borkowski <mbork@mbork.pl>.
Eli Zaretskii [Sat, 30 Sep 2017 06:57:58 +0000 (09:57 +0300)]
Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/emacs into emacs-26
Paul Eggert [Sat, 30 Sep 2017 04:55:32 +0000 (21:55 -0700)]
Merge from gnulib
This incorporates:
2017-09-28 string: code style
2017-09-25 sys_types: update URL
2017-09-23 install-sh: do not assume / = //
2017-09-21 mktime: port to OpenVMS
* build-aux/install-sh, m4/mktime.m4, m4/string_h.m4:
* m4/sys_types_h.m4: Copy from Gnulib.
* lib/gnulib.mk.in: Regenerate.
Paul Eggert [Sat, 30 Sep 2017 00:44:23 +0000 (17:44 -0700)]
Prefer HTTPS to HTTP for gnu.org
This catches some URLs I missed in my previous scan,
or perhaps were added after the scan.
Paul Eggert [Fri, 29 Sep 2017 23:40:18 +0000 (16:40 -0700)]
; Spelling fixes
Noam Postavsky [Tue, 26 Sep 2017 01:58:55 +0000 (21:58 -0400)]
Wait for frame visibility with timeout in w32term too
* src/w32term.c (syms_of_w32term) [x-wait-for-event-timeout]: New
variable.
(x_make_frame_visible): Wait for frame to become visible according to
its value.
(input_signal_count): Remove.
Noam Postavsky [Thu, 31 Aug 2017 03:12:22 +0000 (23:12 -0400)]
Bring back the busy wait after x_make_frame_visible (Bug#25521)
But wait specfically for a MapNotify event, and only for a
configurable amount of time.
* src/xterm.c (syms_of_xterm) [x-wait-for-event-timeout]: New
variable.
(x_wait_for_event): Use it instead of hardcoding the wait to 0.1s.
(x_make_frame_visible): Call x_wait_for_event at the end.
* etc/NEWS: Announce x_wait_for_event.
Philipp Stephani [Fri, 29 Sep 2017 20:47:33 +0000 (22:47 +0200)]
; * src/gtkutil.c (xg_check_special_colors): Add another GTK+ FIXME.
Eli Zaretskii [Fri, 29 Sep 2017 19:03:30 +0000 (22:03 +0300)]
Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/emacs into emacs-26
Glenn Morris [Fri, 29 Sep 2017 16:49:19 +0000 (12:49 -0400)]
; Standardize license notices
Eli Zaretskii [Fri, 29 Sep 2017 12:59:17 +0000 (15:59 +0300)]
Fix last doc string change in simple.el
* lisp/simple.el (shell-command-saved-pos)
(region-extract-function, region-bounds): Doc fixes. (Bug#28609)
Eli Zaretskii [Fri, 29 Sep 2017 12:53:27 +0000 (15:53 +0300)]
Revert "bug#28609: simple.el"
This reverts commit
a75ab3b3fb8ab69ef38a94403d061f88f3b5b63e.
Devon Sean McCullough [Tue, 26 Sep 2017 14:51:04 +0000 (10:51 -0400)]
bug#28609: simple.el
Correct grammar; also, call a pair a pair.
(cherry picked from commit
25ef543a97a80718cc4eb33734d393420a43f41e)
Eli Zaretskii [Fri, 29 Sep 2017 10:27:42 +0000 (13:27 +0300)]
; * etc/NEWS: Fix last change.
Eli Zaretskii [Fri, 29 Sep 2017 10:24:05 +0000 (13:24 +0300)]
Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/emacs into emacs-26
Rasmus [Fri, 29 Sep 2017 08:41:51 +0000 (10:41 +0200)]
Merge branch 'emacs-26' into scratch/org-mode-merge
Eli Zaretskii [Fri, 29 Sep 2017 07:02:33 +0000 (10:02 +0300)]
Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/emacs into emacs-26
Noam Postavsky [Sat, 23 Sep 2017 15:40:14 +0000 (11:40 -0400)]
Fix ert backtrace saving for non-`signal'ed errors (Bug#28333)
* lisp/emacs-lisp/ert.el (ert--run-test-debugger): Take the frames
above the `debugger' frame, rather than assuming there will be a
`signal' frame.
Alan Third [Thu, 28 Sep 2017 21:27:02 +0000 (22:27 +0100)]
Revert "Fix build on macOS (bug#28571)"
This reverts commit
fec63089d53d2196b0348086aeed70277fbc02c0.
Prematurely pushed.
Alan Third [Sun, 24 Sep 2017 11:01:03 +0000 (12:01 +0100)]
Fix build on macOS (bug#28571)
* src/conf_post.h (HAVE_FUTIMENS, HAVE_FUTIMESAT, HAVE_UTIMENSAT)
[DARWIN_OS]: Undefine.
Simen Heggestøyl [Thu, 28 Sep 2017 16:47:07 +0000 (18:47 +0200)]
Add tests for `css-current-defun-name'
* test/lisp/textmodes/css-mode-tests.el (css-test-current-defun-name)
(css-test-current-defun-name-nested)
(css-test-current-defun-name-complex): New tests for
`css-current-defun-name'.
Martin Rudalics [Thu, 28 Sep 2017 08:10:21 +0000 (10:10 +0200)]
In w32fullscreen_hook don't add decorations to undecorated frames
* src/w32term.c (w32fullscreen_hook): Do not add (or try to
remove) decorations for undecorated frames.
João Távora [Wed, 27 Sep 2017 21:35:49 +0000 (22:35 +0100)]
Revert "Split flymake.el into flymake-proc.el and flymake-ui.el"
In other words, re-coalesce the two files,
lisp/progmodes/flymake-proc.el and lisp/progmodes/flymake-ui.el, back
into a single one, lisp/progmodes/flymake.el.
The changesets "Prefer HTTPS to FTP and HTTP in documentation" and
"allow nil init in flymake-allowed-file-name-masks to disable flymake"
are kept in place in the new lisp/progmodes/flymake.el.
This reverts Git commit
eb34f7f5a29e7bf62326ecb6e693f28878be28cd.
Don't merge this back to master as development happening there builds
upon this work. See also
https://lists.gnu.org/archive/html/emacs-devel/2017-09/msg00932.html.
João Távora [Wed, 27 Sep 2017 21:15:19 +0000 (22:15 +0100)]
Revert "Add flymake-backends defcustom"
This reverts Git commit
13993c46a21495167517f76d2e36b6c09ac5e89e.
Don't merge this back to master as development happening there builds
upon this work. See also
https://lists.gnu.org/archive/html/emacs-devel/2017-09/msg00932.html
Paul Eggert [Wed, 27 Sep 2017 00:15:56 +0000 (17:15 -0700)]
* src/editfns.c (styled_format): Fix typo in previous change.
Paul Eggert [Tue, 26 Sep 2017 23:31:57 +0000 (16:31 -0700)]
Avoid some unnecessary copying in Fformat etc.
This patch is just for performance; it should not affect behavior.
On my platform, it made the microbenchmark (format "%S" load-path)
run about 45% faster. It should also speed up calls like (message
"%s" STRING).
* src/callint.c (Fcall_interactively):
* src/dbusbind.c (XD_OBJECT_TO_STRING):
* src/editfns.c (Fmessage, Fmessage_box):
* src/xdisp.c (vadd_to_log, Ftrace_to_stderr):
Use styled_format instead of Fformat or Fformat_message,
to avoid unnecessary copying.
* src/editfns.c (styled_format): New arg NEW_RESULT.
All uses changed. Reuse an input string if it has the
right value and if !NEW_RESULT.
* src/lisp.h (style_format): New decl.
John Wiegley [Tue, 26 Sep 2017 19:35:52 +0000 (12:35 -0700)]
lisp/simple.el: Indicate when a list of pairs is meant in a docstring
Philipp Stephani [Tue, 26 Sep 2017 18:34:27 +0000 (20:34 +0200)]
; * src/gtkutil.c (xg_create_frame_widgets): Add FIXME re. X drawing
Devon Sean McCullough [Tue, 26 Sep 2017 14:51:04 +0000 (10:51 -0400)]
bug#28609: simple.el
Correct grammar; also, call a pair a pair.
Dmitry Gutov [Mon, 25 Sep 2017 23:49:00 +0000 (02:49 +0300)]
Use a separate syntax-ppss cache for narrowed buffers
* lisp/emacs-lisp/syntax.el (syntax-ppss-wide):
New variable, to contain the data from `syntax-ppss-last' and
`syntax-ppss-cache'.
(syntax-ppss-cache, syntax-ppss-last): Remove.
(syntax-ppss-narrow, syntax-ppss-narrow-start): New variables.
(syntax-ppss-flush-cache): Flush both caches.
(syntax-ppss--data): Return the appropriate last result and
buffer cache for the current restriction.
(syntax-ppss, syntax-ppss-debug): Use it (bug#22983).
Joerg Behrmann [Mon, 18 Sep 2017 14:59:49 +0000 (16:59 +0200)]
Improve python3-compatibility of fallback completion (Bug#28499)
* lisp/progmodes/python.el (python-eldoc-setup-code): Use
inspect.getfullargspec instead of inspect.getargspec to avoid a
deprecation warning on every usage of eldoc in python-mode.
Copyright-paperwork-exempt: yes
Noam Postavsky [Mon, 25 Sep 2017 11:15:51 +0000 (07:15 -0400)]
Fix subr-x-tests when running from elc
* test/lisp/emacs-lisp/subr-x-tests.el (subr-x-and-let*-test-group-1):
Use `eval' around the `should-error' cases.
Noam Postavsky [Sat, 23 Sep 2017 14:04:36 +0000 (10:04 -0400)]
* lisp/eshell/esh-util.el (eshell-condition-case): Add debug declaration.
Noam Postavsky [Wed, 30 Aug 2017 23:42:47 +0000 (19:42 -0400)]
Make sh-indentation into an alias for sh-basic-offset (Bug#21751)
* lisp/progmodes/sh-script.el (sh-indentation): Redefine as obsolete
variable alias for `sh-basic-offset'.
(sh-mode, sh-smie--indent-continuation)
(sh-smie-rc-rules, sh-basic-indent-line): Replace `sh-indentation'
with `sh-basic-offset'.
Noam Postavsky [Wed, 30 Aug 2017 23:31:48 +0000 (19:31 -0400)]
Fix loading of smie-config rules (Bug#24848)
* lisp/emacs-lisp/smie.el (smie-config--setter): Use `set-default'
instead of `setq-default'.
(smie-config): Use `custom-initialize-set' instead of
`custom-initialize-default' as the :initialize argument.
* lisp/progmodes/sh-script.el (sh-learn-buffer-indent): Mention that
we call `smie-config-guess' so that the user will have a chance to
find the correct docstring to consult. Remove hedging comments
regarding use of abnormal hooks.
Dmitry Gutov [Mon, 25 Sep 2017 23:25:03 +0000 (02:25 +0300)]
; Update NEWS for the change in eldoc-message
Dmitry Gutov [Mon, 25 Sep 2017 22:44:54 +0000 (01:44 +0300)]
Reset default-directory inside *xref-grep* buffer
* lisp/progmodes/xref.el (xref-collect-matches):
Reset default-directory, too. (Bug#28575)
Michael Albinus [Mon, 25 Sep 2017 15:52:24 +0000 (17:52 +0200)]
* test/lisp/tramp-tests.el (tramp-test21-file-links): Special code for smb.
Mark Oteiza [Mon, 25 Sep 2017 12:45:08 +0000 (08:45 -0400)]
Loosen strict parsing requirement for desktop files
There are other desktop-looking files, for instance those having to do
with MIME typess, that would benefit from being able to be read by this
function. It helps to have some flexibility.
* lisp/xdg.el (xdg-desktop-read-file): Remove an error condition.
* test/lisp/xdg-tests.el: Remove a test.
Mark Oteiza [Mon, 25 Sep 2017 12:44:23 +0000 (08:44 -0400)]
* lisp/xdg.el (xdg-thumb-uri): Fix doc string.
Martin Rudalics [Mon, 25 Sep 2017 08:09:32 +0000 (10:09 +0200)]
Fix documentation of `make-frame' and related variables and hooks
* lisp/frame.el (before-make-frame-hook)
(after-make-frame-functions, frame-inherited-parameters)
(make-frame): Fix doc-strings.
* doc/lispref/frames.texi (Creating Frames): Fix description
of `make-frame' and related variables and hooks.
Eric Abrahamsen [Sun, 24 Sep 2017 21:01:21 +0000 (14:01 -0700)]
Accept new `always' value for option `buffer-offer-save'
Also revert
ee512e9a82
* lisp/files.el (buffer-offer-save): In addition to nil and t, now
allows a third symbol value, `always'. A buffer where this option is
set to `always' will always be offered for save by
`save-some-buffers'.
(save-some-buffers): Check the exact value of this buffer-local
variable. No longer check the buffer name, or the value of
`write-contents-functions'.
* doc/lispref/buffers.texi (Killing Buffers): Note change in manual.
* doc/lispref/files.texi (Saving Buffers): Remove note about buffer
names.
* etc/NEWS: Mention in NEWS.
Alan Third [Sun, 24 Sep 2017 21:35:21 +0000 (22:35 +0100)]
Improve new NS scrolling variable names
* src/nsterm.m (ns-use-system-mwheel-acceleration): Replace with
'ns-use-mwheel-acceleration'.
(ns-touchpad-scroll-line-height): Replace with
'ns-mwheel-line-height'.
(ns-touchpad-use-momentum): Replace with 'ns-use-mwheel-momentum'.
* etc/NEWS: Change variable names.